home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
answers
/
news
/
de-amiga-faq
/
part1
< prev
next >
Wrap
Internet Message Format
|
1994-03-29
|
53KB
Path: bloom-beacon.mit.edu!hookup!europa.eng.gtefsd.com!howland.reston.ans.net!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!zib-berlin.de!news.th-darmstadt.de!News.Uni-Marburg.DE!news.belwue.de!iptc!newsserv.zdv.uni-tuebingen.de!zrawi01
From: wiedmann@mailserv.zdv.uni-tuebingen.de (Jochen Wiedmann)
Newsgroups: de.comp.sys.amiga.misc,zer.z-netz.rechner.amiga.allgemein,de.answers,news.answers
Subject: German Amiga-FAQ (Haeufig gestellte Fragen) (Part 1 of 2)
Supersedes: <AmigaFAQg-1-762303609@mailserv.zdv.uni-tuebingen.de>
Followup-To: de.comp.sys.amiga.misc
Date: 29 Mar 1994 19:55:20 GMT
Organization: InternetNews at ZDV, University of Tuebingen, Germany
Lines: 1115
Approved: news-answers-request@MIT.Edu
Distribution: world
Expires: Saturday, 16 Apr 94 21:50:03 (Z)
Message-ID: <AmigaFAQg-1-764970603@mailserv.zdv.uni-tuebingen.de>
Reply-To: wiedmann@mailserv.zdv.uni-tuebingen.de (Jochen Wiedmann)
NNTP-Posting-Host: mailserv.zdv.uni-tuebingen.de
Summary: German language Amiga-FAQ:
Haeufig gestellte Fragen und Antworten zum Amiga.
Neue Anwender sollten dies lesen!
Originator: zrawi01@mailserv.zdv.uni-tuebingen.de
Xref: bloom-beacon.mit.edu de.comp.sys.amiga.misc:15632 de.answers:51 news.answers:16995
Posted-By: auto-faq 2.4
Archive-name: de-amiga-faq/part1
Last-modified: 29-Mar-1994
Haeufig gestellte Fragen (FAQ) zum Amiga [1/2]
----------------------------------------------
Es folgt eine Liste haeufig gestellter Fragen (FAQ = Frequently asked
questions). Sie ist vor allem fuer neue Anwender gedacht, aber
moeglicherweise finden auch erfahrene Anwender Interessantes. Dies ist
Teil 1, der zweite beginnt mit Kapitel 5.
Die Liste ist in Ascii-Format, damit sie von jedermann/frau gelesen werden
kann. Sie ist auch in AmigaGuide- und Dvi-Format erhaeltlich als Teil des
Amiga-FAQ-Archivs. (Datei text/docs/AmigaFAQxxxxxxg.lha auf dem
Aminet, wobei xxxxxx das Datum der neuesten Version ist.)
Bitte beachten Sie das Folgende:
- Aenderungen der letzten zwei Wochen sind markiert.
! diese Zeile bzw. dieser Abschnitt wurden geaendert
+ diese Zeile ist neu
< vor dieser Zeile wurde etwas geloescht
- Ein Index ist am Ende des zweiten Teils. Wenn auch dies nicht
weiterhilft: Bitte schicken Sie mir eine E-Mail. Vielleicht kann
ich eine Antwort in die FAQ aufnehmen.
- Vorschlaege, Beitraege, Kritik und Bierflaschen sind sehr
willkommen. :-)
Jochen Wiedmann
Am Eisteich 9
72555 Metzingen (Germany)
Tel. 07123 / 14881
Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
==========================(Schnipp-Schnapp)===================================
Amiga-FAQ
*********
Dieses Dokument enthaelt einige haeufig gestellte Fragen und
versucht, Antworten zu geben. Seine Absicht ist es, neuen Benutzern zu
helfen und die Zahl der News-Artikel zu reduzieren, die erfahrene
Benutzer nicht mehr sehen wollen.
Bitte beachten Sie, dass viele Abschnitte bis jetzt noch fast
voellig leer sind. Ich verstehe von den betreffenden Abschnitten nichts
und habe nicht das Gefuehl, als ob ich daran etwas aendern koennte.
Damit sind Sie an der Reihe: Fuellen Sie die Luecken und teilen Sie mir
mit, was man hier noch aufnehmen kann!
Disclaimer
1 Hardware
1 Was sind 68EC020, 68EC030 und 68LC040?
2 Was ist ein mathematischer Coprozessor (FPU) ?
2 Das Betriebssystem
1 Kann ich eine andere als die eingebaute Kickstart benutzen?
3 Programmierung
! 1 Was ist die beste Dokumentation fuer Programmierer?
! 2 Was ist CATS?
! 3 Wo bekomme ich die Amiga-Include-Dateien?
4 Wie werde ich Developer?
! 5 Was fuer Compiler (und Assembler) gibt es?
6 Warum funktioniert keine Esc-Sequenz?
7 Kann ich AmigaBasic auf dem A1200 verwenden?
8 Wie lokalisiere ich mein Programm?
9 Wie erhaelt man einen Zeiger auf das Fenster einer Konsole?
10 Was sind Pragmas?
11 Wo finde ich die Funktion xxx?
4 Anwendungen
1 Text-Editoren
2 Was fuer Textverarbeitungsprogramme gibt es?
3 Desktop Publishing
4 Was ist TeX und wo bekomme ich es?
5 Gibt es PostScript-Interpreter auf dem Amiga?
5 Grafik
1 Was heiss Chunky- und Planar-Display?
2 Was ist Doublebuffering?
3 Was fuer Monitore arbeiten am Amiga 1200 oder 4000?
6 Emulationen
1 Kann ich meinen Amiga unter Unix benutzen?
2 Ist es moeglich, den Amiga als X11-Terminal zu benutzen?
7 Verschiedenes
1 Gibt es eine Unix-Version von LhA.
2 Was sind Dateien, die mit ... enden?
3 Gibt es ein Programm wie Stacker, um die Hard-Disk zu packen?
4 Wo bekomme ich Fish-Disk xxx?
5 Wie fuellt man die Tintenkartuschen der HPDeskjet-Drucker nach?
8 Wo und wie bekomme ich Software?
1 Dateien und Datenbanken zur frei kopierbaren Software
2 Eine Sammlung von Testberichten
3 Empfangen von Dateien von einem FTP-Server
4 Empfangen von Dateien von einem Mail-Server
5 Die Fish-Disketten
1 Die Amiga-Library-Disks
2 Die Fresh-Fish-Serie
6 Wie kann ich MS-Dos-Disketten lesen und schreiben?
7 Wie transportiere ich sehr grosse Dateien
Das Amiga-FAQ-Archiv
Beitraege zur Amiga-FAQ
Danksagungen
Index
Disclaimer
**********
Diese Datei steht unter dem
Copyright (C) Jochen Wiedmann
Am Eisteich 9
72555 Metzingen (Deutschland)
Tel. 07123 / 14881
Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
Es ist erlaubt, sowohl veraenderte als auch unveraenderte Kopien
dieser Datei herzustellen und zu verteilen, vorausgesetzt, dass dabei
die Bestimmungen der "GNU General Public License" eingehalten werden und
die Copyright-Notiz sowie diese Erlaubnis unveraendert auf allen Kopien
enthalten sind.
Der Autor gibt *absolut keine* Garantie, dass die hier gegebenen
Antworten korrekt sind. Einige dieser Antworten sind von anderen
Benutzern beigetragen worden und ich habe teilweise nicht einmal die
Moeglichkeit, auch nur die einfachsten Tests durchzufuehren.
Vorschlaege, weitere Beitraege, neue Fragen und Antworten, Kritik und
Beschimpfungen (oh, wie ich mein `nil:' liebe :-) sind aber sehr
willkommen. Siehe Beitraege.
1 Hardware
**********
Dieses Kapitel enthaelt Fragen zur Amiga-Hardware.
1.1 Was sind 68EC020, 68EC030 und 68LC040?
==========================================
Motorola, die Herstellerfirma der 680x0-Familie bietet auch gestutzte
Versionen ihrer Prozessoren an. Diese sind etwas preisguenstiger als die
Originale, weshalb Commodore auch den 68EC020 in den A1200 und den
68EC030 in den A4000/030 einbaut. Dafuer koennen sie aber auch etwas
weniger.
Der Unterschied zwischen 68020 und 68EC020 ist, dass letzterer nur
16MB Speicher adressieren kann. (Das ist der Grund, warum der A1200 nur
maximal 10MB RAM haben kann.) In den meisten Faellen sollte man den
Unterschied aber gar nicht bemerken.
Das ist beim 68EC030 anders: Viele Benutzer werden feststellen, dass
der 68030 eine MMU (Memory management unit) hat und der 68EC030 nicht.
(Beim 68020 gibt es noch die Moeglichkeit, eine externe MMU, den 68851
nachzuruesten.) Es gibt einige wichtige Programme, die eine MMU
brauchen, z.B. Enforcer (ein Hilfsprogramm zur Fehlersuche), GigaMem
(ein Programm zur Emulation von virtuellem RAM) oder alle aktuellen
Unix-Versionen. (siehe Unix) Wer eines dieser Programme verwenden will
und keinen A4000 oder A3000 hat, braucht deshalb eine Prozessorkarte
mit einem 68030 oder 68040.
Der 68LC040 ist ein 68040 ohne FPU. Siehe FPU.
1.2 Was ist ein mathematischer Coprozessor (FPU) ?
==================================================
Die Prozessoren 68000 bis 68030 bieten ausschliesslich Integer (=
Ganzzahl) Arithmetik. Floating-Point (Fliesskomma) Operationen werden
ueber eine Befehlssequenz ausgefuehrt. Floating-Point Units (FPUs) bzw.
mathematische Koprozessoren sind fuer diese Aufgaben optimiert.
Im wesentlichen kann man drei FPU-Typen unterscheiden: Den 68881,
68882 und die interne FPU des 68040. Aufgrund der Trennung von
Arithmetikeinheit und Konvertierlogik (notwenig zur Konversion
anliegender Zahlenformate in das prozessoreigene 80bit-Format) ist die
68882 FPU bis zu 1.5 mal schneller als die 68881. Die interne FPU des
68040 besitzt darueber hinaus eine dreistufige Pipeline, allerdings
sind in ihr nicht alle Befehle der 68881/68882 realisiert. Die
fehlenden (trigonometrischen) Befehle werden per Software emuliert
(z.B. ueber die 68040.library).
Fuer viele Programme (Raytracing, DTP, Mathematik, TeX) existieren
spezielle Coprozessorversionen. Je nach Auslastungsgrad kann damit eine
Geschwindigkeitssteigerung bis zum Faktor 50 erreicht werden.
Michael Kaiser (kaiser@ira.uka.de)
2 Das Betriebssystem
********************
Dieses Kapitel behandelt Fragen zum Betriebssystem, sowohl Kickstart
als auch Workbench.
2.1 Kann ich eine andere als die eingebaute Kickstart benutzen?
===============================================================
Zunaechst ein paar Worte zur Legalitaet der Benutzung einer anderen
Kickstart: Es ist *nicht* erlaubt, Kopien von Kickstarts fremder
Computer zu erstellen und auf einem anderen Computer zu benutzen! (Es
ist sogar fraglich, ob man das auf eigenen Maschinen darf, wenn man
mehr als einen Amiga hat.)
Natuerlich ist es moeglich und fuer gewisse Personen (z.B. Developer,
siehe Developer) auch erlaubt. Es gibt zwei verschiedene
Moeglichkeiten, eine Hardware- und eine Softwareloesung. Erstere ist,
eine Platine in den Computer einzubauen, die sowohl die eigene als auch
eine andere Kickstart aufnehmen kann, zwischen denen man dann
umschalten kann.
Die Softwareloesung benoetigt ein Programm (einen sogenannten
Softkicker) und die Kopie der anderen Kickstart. Der Softkicker
alloziert RAM, laedt die Kickstart-Kopie in dieses RAM und fuehrt einen
Reset aus. Natuerlich fehlt dann nach dem Reboot unter der neuen
Kickstart etwas RAM: 256KB weniger fuer Kickstart 1.2 oder 1.3 und
512KB fuer die neueren Kickstarts.
Es gibt verschiedene Softkicker, von denen einige eine MMU benoetigen
(siehe 68EC0xx). Eine nahezu perfekte Loesung fuer die Kickstart 1.3
bietet das Programm kick13 (Aminet, Directory `util/misc'), weil hier
bereits die Kickstart integriert ist. (Mit Erlaubnis von Commodore!)
Fuer neuere Kickstarts wuerde ich SKick 3.43 (Aminet, Directory
`os20/util') empfehlen, das keine MMU braucht und viele verschiedene
Kickstarts unterstuetzt. Die Kopie des ROM zu erzeugen ist mit einem
Programm wie dem Folgendem moeglich:
#include <stdio.h>
#define kickorig 0xf80000 /* 0xfc0000 fuer Kick 1.2 und 1.3 */
#define kicklen 0x080000 /* 0x040000 fuer Kick 1.2 und 1.3 */
void main(int argc, char*argv[])
{ FILE *fh;
if ((fh = fopen("kickstart.file", "w")) != NULL)
{ result = fwrite(kickorig, kicklen, 1, fh);
}
fclose(fh);
}
3 Programmierung
****************
In diesem Kapitel finden vermutlich nur Programmierer Interessantes.
! 3.1 Was ist die beste Dokumentation fuer Programmierer?
! =======================================================
Die beste verfuegbare Dokumentation sind sicherlich die RKM's (ROM
Kernel Manuals, die schwarzen) von Commodore. Sie werden von
Addison-Wesley veroeffentlicht.
The Amiga ROM Kernel Manual: Libraries, ISBN 0-201-56774-1
The Amiga ROM Kernel Manual: Devices, ISBN 0-201-56775-X
The Amiga ROM Kernel Manual: Includes and Autodocs, ISBN
0-201-56773-3
The Amiga Hardware Manual, ISBN 0-201-56776-8
The Amiga User Interface Style Guide, ISBN 0-201-57757-7
Vor allem die Libraries sind ein Muss. Weniger nuetzlich sind die
Includes und Autodocs: Sie sind auf Diskette als Online-Hilfe sicher
nuetzlicher. Siehe Include-Dateien.
AmigaDOS wird in diesen Buechern kaum behandelt. Die Autodocs geben
einige Informationen, aber um tiefer einzusteigen braucht man das
The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
ebenfalls von Commodore, das von Bantam Books herausgegeben wird.
Eine gute Wahl ist auch
The Amiga Guru Book
von Ralph Babel. Das Buch beginnt mit einem ca. 250-seitigen
allgemeinen Ueberblick ueber verschiedenste Aspekte der Programmierung
des Amiga. Fuer Anfaenger duerften vor allem die Abschnitte ueber die
Amiga-Datentypen sowie die Amiga-Includes und die amiga.lib interessant
sein, aber auch Erfahrene finden hier mit Sicherheit noch Neues, was
zum Teil nicht einmal in den RKM's enthalten ist. Den groessten Teil
des Buches nehmen aber 500 Seiten nur zu AmigaDOS ein. Dieser Teil ist
meines Erachtens der wichtigste, weil das AmigaDOS-Manual der
schlechteste Teil der offiziellen Dokumentation ist. Das Buch ist sehr
dicht geschrieben und deshalb weniger leicht lesbar als die RKM's, aber
ich empfehle es als Zusatz und vor allem anstelle des AmigaDOS-Manuals.
(Allerdings ist das Guru-Buch kein Ersatz fuer die Libraries & Devices,
die hier nicht behandelt werden.) Ungluecklicherweise hat das Buch
keine ISBN-Nummer und ist deshalb nur bei den folgenden Adressen
erhaeltlich:
! Hirsch & Wolf OHG; Mittelstrasse 33; D-56564 Neuwied; Germany
! Voice: +49 (2631) 8399-0; Fax: +49 (2631) 8399-31
! E-Mail: <hhhirsch@carla.adsp.sub.org> (fax preferred)
! (Eurocard/Mastercard/VISA)
!
! Periscope; Attn: Cody Lee; 1717 W Kirby Ave; Champaign, IL 61821, USA
! Voice: +1 (217) 398 4237; Fax: +1 (217) 398 4238
! E-Mail: <periscope@cei.com>
!
! Someware; 27 rue Gabriel Peri; 59186 Anor; France
! Voice: +33 27596000; Fax: +33 27595206
! E-Mail: <didierj@swad.adsp.sub.org>
<
! 3.2 Was ist CATS?
! =================
Dies ist eine Abteilung von Commodore West Chester, die frueher
`Commodore Amiga Technical Support' hiess und spaeter in `Commodore
Application and Technical Support' umbenannt wurde. Die Mitglieder
arbeiten unabhaengig von der Entwicklungsabteilung, aber eng mit ihr
zusammen, und versuchen, Entwicklern ausserhalb von Commodore beim
Erstellen guter Amiga-Anwendungen zu helfen, sei das eine Hard- oder
Software. Dazu hat CATS eine Menge an Informationen und Tools
gesammelt, auf Floppy, CD oder Papier. Ein grosser Teil dieses
Materials ist auch der Allgemeinheit, d. h. fuer Nicht-Developer
zugaenglich. Aber bitte CATS nicht mit einer Hotline verwechseln!
Amerikaner koennen das Material von
CATS - Developer Applications
Commodore
1200 Wilson Drive
West Chester, PA. 19380
bekommen, der Distributor fuer ganz Europa ist die
Fa. Hirsch & Wolf
Mittelstr. 33
56564 Neuwied
Tel. 02631/83990
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
! 3.3 Wo bekomme ich die Amiga-Include-Dateien?
! =============================================
Der einzige legale Weg, die Include-Dateien und die AutoDocs zu
bekommen (und Sie sollten sie bekommen, sie sind *sehr* nuetzlich!),
ist, Developer zu werden (siehe siehe Developer) oder das sogenannte
`NDU' (Native developers update kit, auch als `NDUK', `NDK' bekannt oder
`ADU' fuer Amiga Developer Update) bei CATS zu kaufen. Siehe CATS. Es
kostet etwa 50DM, was sicher ein fairer Preis ist. Dabei handelt es
sich um ein 5-Disketten-Set, das neben den aktuellen Includes und
AutoDocs auch Tools fuer Programmierer, z.B. Enforcer, Mungwall, Sushi
und die debug.libg (zum Debuggen) sowie anderes, z.B. CatComp (siehe
Lokalisierung) oder Report (fuer Bug-Reports oder Vorschlaege an
Commodore) enthaelt. Die aktuelle Version ist 3.1 und fuer
Programmierer beinahe obligatorisch.
Wem die Includes genuegen, der kann diese ueber ein Update seines
! Compilers (nur kommerzielle Compiler) oder von den Fish-CD's bekommen.
! Siehe Fish-CD.
3.4 Wie werde ich Developer?
============================
Um Developer zu werden, braucht man die `ADSP'-Antragsformulare
(Amiga developer support program). Um diese zu bekommen, sollte man
einen Brief an die lokale Commodore-Niederlassung schreiben und nach
diesen Papieren fragen, in denen das weitere erklaert wird. In
Deutschland ist die Adresse folgende:
Commodore
Lyoner Strasse 38
60528 Frankfurt
Es gibt drei verschiedene Arten von Developern:
*Registered*
Hier bekommt man vor allem Zugang zum adsp-Kommunikationsnetz
(eine Art Commodore-internes Usenet), ueber das man direkt mit
anderen Entwicklern auch von Commodore selber ueber seine Probleme
diskutieren kann. Die Jahresgebuehr betraegt 150 DM, die einmalige
Aufnahmegebuehr 50 DM.
*Certified*
Dies ist die interessanteste Klasse: Man bekommt von der meisten
Systemsoftware die aktuellen Beta-Versionen (z. B. Kickstart und
Workbench) sowie die dazugehoerigen Includes und AutoDocs.
Certifieds bekommen aber nicht jede Beta und in der Regel auch
keine Hardware-Beta. Man bezahlt 400 DM pro Jahr dafuer und eine
einmalige Aufnahmegebuehr von 100 DM.
*Commercial*
Kommerzielle Entwickler bekommen im wesentlichen dieselben
Informationen wie die "Zertifizierten", allerdings kompletter,
sprich auch Beta-Hardware, und etwas frueher. Dies hat auch seinen
Preis: 700DM pro Jahr plus einmalige Aufnahmegebuehr von 100DM.
Die Preise und die angebotenen Moeglichkeiten koennen von Land zu Land
verschieden sein, auch gibt es meines Wissens nicht in allen Laendern
den "Registered". Ein guter Tip ist es, eine Gruppe zu bilden und damit
die Kosten zu reduzieren.
Alle Entwickler muessen das sogenannte `NDA' (Non disclosure
agreement) unterzeichnen. Dies besagt, dass sie die erhaltenen
Informationen bei Strafe nicht an Unbefugte weitergeben duerfen.
! 3.5 Was fuer Compiler (und Assembler) gibt es?
! ==============================================
Es gibt viele Programmiersprachen auf dem Amiga, kommerzielle
Compiler ebenso wie frei kopierbare. Ich moechte nur diejenigen
aufzaehlen, die mir bekannt sind oder die ich aus einem anderem Grund
fuer erwaehnenswert halte.
*Assembler*
Alle C-Compiler beinhalten einen Assembler. Frei kopierbar und
zuverlaessig sind A68K und PhxAss. (Aminet, Directory `dev/asm'
oder Fish-Disks 521 bzw. 906)
*C*
*C++*
Frei kopierbare C-Compiler sind der `gcc' (der sein eigenes
Directory `dev/gcc' auf dem Aminet hat) und die Probeversion (mit
der man aber schon eine ganze Menge anfangen kann) von `Dice' (per
FTP von `ftp.uni-paderborn.de', Directory
`/news/comp.binaries.amiga/volume91/languages' oder auf Fish disk
! 491). Der grosse Vorteil von `gcc' ist, dass man ihn auf der
! ganzen Welt und auf nahezu jedem Computer findet. Ein weiterer
! Vorteil ist, dass er sogar einen C++-Compiler enthaelt! Aber er
! ist langsam und benoetigt 4MB RAM oder mehr.
!
! Kommerzielle C-Compiler sind `Aztec-C', `Dice' und `SAS-C'. Ich
! kann `Aztec-C' leider nicht mehr empfehlen, denn der Compiler
! scheint nicht mehr weiterentwickelt zu werden. Was die
! kommerziellen Compiler auszeichnet, sind ihre hervorragenden
! Source-Level-Debugger, die den anderen fehlen. SAS-C enthaelt
! sogar einen Crosscompiler, der C++ in C uebersetzt und ebenfalls
! den Source-Level-Debugger unterstuetzt. Dice ist der
! preisguenstigste und schnellste Compiler, aber auch SAS-C ist
! recht preiswert fuer Studenten oder als Update (sogar als Update
! von anderen Compilern.)
Comeau C++ ist ebenfalls ein Crosscompiler, was an und fuer sich
kein Problem waere. Aber Comeau C++ hat keinen integrierten
C-Compiler, man braucht also zusaetzlich SAS-C, Aztec-C oder Dice.
Aber er unterstuetzt die neuesten Standards und laeuft wie `gcc'
auf vielen verschiedenen Systemen. In Deutschland wird auch Maxxon
C++ angeboten, ueber das ich nichts sagen kann. Beide Compiler
sind kommerziell. Comeaus Adresse ist:
Comeau computing
91-34, 120th Street
Richmond Hill, NY, 11418-3214
USA
EMail: Greg Comeau, comeau@bix.com
*Forth*
JForth soll eine exzellente Forth-Version sein. Unter anderem
enthaelt es objektorientierte Erweiterungen, ein volles
Amiga-Interface und einen Anwendungsgenerator. Es ist erhaeltlich
von:
Delta Research
P.O. Box 151051
San Rafael, CA 94915-1051
Phone: (415) 453-4320
EMail: Phil Burk, phil@ntg.com
Mike Haas, haas@starnine.com
*Fortran*
(Seufz! Es gibt immer noch Leute, die es brauchen :-<) Frei
kopierbar sind BCF (Fish disk 470) und f2c, der Fortran in
C-Quelltext umwandelt. (Aminet, Directory `/dev/misc'). Ein
kommerzieller Compiler ist von ABSoft erhaeltlich. Allerdings sind
dies alles nur Fortran-77-Compiler, es gibt keine
Fortran-90-Compiler auf dem Amiga.
*Lisp*
Frei kopierbare Lisp-Interpreter sind XLisp (Fish-Disk 181) und
OakLisp (Fish-Disks 519 und 520) und CLISP
(`/pub/lisp/clisp/binaries/amiga' at
`ma2s2.mathematik.uni-karlsruhe.de'). Auch Compiler gibt es: Gambit
(Fish-Disks 764 und 765) sowie Scheme-to-C (Fish-Disks 556-558).
Von Interesse ist vielleicht eine Mail-Liste: Senden Sie dazu eine
Mail mit dem Wort `Subscribe' an `amigalisp@contessa.phone.net'.
*Prolog*
`/dev/lang/UNSWProlog.lha' und `dev/lang/sbp3_1e' auf dem Aminet
sowie `SBProlog' auf der Fish-Disk 141 und `SBProlog' auf der
Fish-Disk 145 sind frei kopierbare Prolog-Interpreter.
*Modula-2*
M2Amiga wird in Europa und Benchmark Modula-2 in den USA
angeboten. Beide sollen sehr gut sein und sowohl ueber gute
Source-Level-Debugger als auch eine umfangreiche Bibliothek
verfuegen. Besonders M2Amiga wird sehr gut unterstuetzt durch eine
deutsche Benutzergruppe (AMOK), die z.B. eine eigene PD-Serie
anbieten.
M2Amiga ist bekommt man bei
A+L AG
Daderiz 61
2540 Grenchen
Schweiz
Tel.: +41/65/52 03-11
Fax: -79
und Benchmark Modula-2 ist erhaeltlich von:
Armadillo Computing
5225 Marymount Drive
Austin, Texas 78723
USA
Phone/FAX: 512/926-0360.
EMail: Jim Olinger, jolinger@bix.com
*Oberon*
*Oberon-2*
A+L vertreibt auch AmigaOberon, der sowohl Oberon als auch Oberon-2
beherrscht. Der Compiler kommt mit einer integrierten
Entwicklungsumgebung (incl. freikonfigurierbarem Editor) und
umfangreicher Modulbibliothek. Library Linker zum einfachen
Erzeugen von AmigaOS shared libraries sowie run-time
Source-Level-Debugger sind ebenfalls erhaeltlich.
Auch fuer diesen Compiler gibt es Unmengen von Modulen und
Bsp.-Sourcen auf AMOK-Disks.
*Pascal*
Es gibt einen PD-Compiler namens PCQ (Aminet, Directory `dev/lang'
oder Fish-Disk 511), der allerdings kein voller Pascal-Compiler
ist und dem sehr wesentliche Dinge fehlen. P2C konvertiert Pascal
in C und ist auf der Fish-Disk 341 zu finden. (Aminet:
`/dev/misc/p2c120.lha') Ferner gibt es zwei kommerzielle Compiler
namens HiSoft-Pascal (von der gleichnamigen Firma) und KickPascal
von Maxxon. HiSoft und P2c behaupten, kompatibel zu Turbo-Pascal
5.0 zu sein. HiSoft hat ausserdem einen guten
Source-Level-Debugger.
3.6 Warum funktioniert keine Esc-Sequenz?
=========================================
Viele Drucker kommen mit einem Handbuch, das erklaert, welche
Esc-Sequenzen welche Funktion ausloesen. Aber wenn man diese Sequenzen
dann einmal ausprobiert, passieren oft merkwuerdige Sachen, naemlich
entweder gar nichts oder etwas ganz anderes, als geplant war. Und das
hat auch einen Grund, naemlich die Amiga-Druckertreiber. Diese Treiber
sind so gebaut, dass sie nur einen bestimmten Satz `ANSI-Esc-Sequenzen'
verstehen, nicht die (verschiedenen) druckereigenen, von den
verschiedenen Druckerherstellern definierten. Der Sinn dabei ist, dass
jede Anwendung auf dem Amiga nur diesen einen Standardsatz an Sequenzen
verwendet und so nicht zu wissen braucht, welcher Drucker tatsaechlich
angeschlossen ist. Der Druckertreiber uebersetzt dann diese
Standardsequenzen in die druckereigenen. Eine Liste der verfuegbaren
ANSI-Esc-Sequenzen findet sich im aktuellen Workbench-Handbuch (oder in
aelteren AmigaDOS-Handbuechern). Wenn Du nun eine Steuersequenz an den
Drucker schicken willst, die es nicht als ANSI-Sequenz gibt, hast Du
zwei Moeglichkeiten, dies doch zu erreichen:
1. Umgeh den Druckertreiber (der erfolglos versuchen wuerde, die
Sequenz zu interpretieren oder zu uebersetzen) und sende die
Ausgabe *nur* fuer die Laenge dieser Sequenz an `PAR:' (bzw.
`SER:'). Dabei muss man die Druckerausgabekanaele umstaendlich oft
umschalten, und man muss wissen, wo der Drucker angeschlossen ist
(`PAR:' oder `SER:').
2. Benutze eine spezielle ANSI-Sequenz, genau fuer diesen Fall
gedacht:
`Esc[<n>"<x>'
wobei `<n>' die dezimal geschriebene Anzahl an Bytes in der Sequenz
`<x>' ist, die gerade die spezielle Drucker-Sequenz enthaelt. Diese
ANSI-Sequenz sagt dem Druckertreiber, dass er die naechsten `<n>'
Bytes nicht interpretieren oder uebersetzen soll.
Aber beide Methoden haben einen grossen Nachteil, wenn sie in
einem Anwendungsprogramm verwendet werden: Man verliert die
Druckerunabhaengigkeit! Solange man sich an die ANSI-Sequenzen haelt,
kann man jeden Drucker der Welt ansteuern, solange es einen
Amiga-Druckertreiber faer ihn gibt. Wenn man anfaengt, druckereigene
Sequenzen zu verwenden, ist das Programm an diesen einen Druckertyp
gebunden und ist mit keinem anderen benutzbar (oder man muesste einige
Dutzend neue Druckertreiber fuer dieses Programm erstellen).
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
3.7 Kann ich AmigaBasic auf dem A1200 verwenden?
================================================
Letztens ging eine Kontroverse ueber AmigaBasic durch die Netze: Ich
sagte, auf dem A1200 laeuft es einigermassen problemlos, jemand anders
berichtete, dass es bei jedem kleinsten Fehler sofort komplett
abstuerzt, was ich nicht nachvollziehen konnte.
Jetzt kann ich es: Es liegt am Sound-Prefs-Editor. Wenn man in ihm
die Sound-Ausgabe ganz abschaltet, kann man mit AmigaBasic arbeiten.
Wenn hier ein Sound (z. B. Piepsen) angewaehlt ist, kollidiert das mit
dem Sound, den AmigaBasic offensichtlich zu Fuss und nicht ganz korrekt
selber erzeugen will, bumm.
Abhilfe also:
1. Im Sound-Editor den Ton abstellen.
2. Auf einem A4000 (oder einem A1200 mit Fast-RAM-Erweiterung (1))
muss man zusaetzlich NoFastMem aktivieren.
3. Moeglichst SUBs vermeiden und stattdessen herkoemmliche GOSUBs
benutzen, dann ist die Kompatibilitaet zu neueren Prozessoren
hoeher.
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.co
---------- Footnotes ----------
(1) Nur bei einem zusaetzlichen Prozessor
3.8 Wie lokalisiere ich mein Programm?
======================================
Nehmen wir an, wir wollen ein `HelloLocalWorld.c' schreiben. Das
letztendliche Programm sieht dann ungefaehr so aus:
#include "HelloLocalWorld_Cat.h"
#include <clib/exec_protos.h>
struct Library *LocaleBase;
void main(int argc, char *argv[])
{
/* Oeffne die locale.library. (Kein Abbruch, wenn sie nicht
da ist, weil dann einfach die eingebauten Strings verwendet
werden. Aus diesem Grund auch keine Verwendung des
AutoOpening, auch wenn es der Compiler beherrscht.
*/
LocaleBase = OpenLibrary("locale.library", 38);
OpenHelloLocalWorldCatalogs(NULL, NULL);
printf(GetString(MSG_Hello));
CloseHelloLocalWorldCatalog();
if (LocaleBase) CloseLibrary(LocaleBase);
}
Die Funktion GetString prueft, ob die gewuenschten Kataloge
vorhanden sind und liefert einen Zeiger auf einen String, entweder den
eingebauten oder den Katalogstring. (In unserem Fall den deutschen
String.)
Der Hauptunterschied zum gewohnten HelloWorld.c ist also (abgesehen
von der minimalen Initialisierung und dem Gegenstueck am Programmende),
Strings durch einen Funktionsaufruf zu ersetzen. Man braucht also eine
Datei `HelloLocalWorld_Cat.c', die die Funktionen OpenHelloLocalWorld,
GetString, CloseHelloLocalWorld_Cat.h und die eingebauten Strings
enthaelt (dies koennte ein Array sein, das unter anderem
array[MSG_Hello] = "Hello, local world.\n";
enthaelt) und ein Includefile `HelloLocalWorld_Cat.h', das die ID's wie
MSG_Hello definiert. Es ist nicht noetig, zu wissen, wie diese Dateien
intern arbeiten, insbesondere benoetigt man auch keine Kenntnis der
`locale.library'!
Dazu gibt es verschiedene Kataloggeneratoren (im Folgenden KG),
naemlich `CatComp' (nur fuer Developer), `KitCat', (nur deutsche
Dokumentation, was hierzulande kein Problem ist), `MakeCat', (das ich
nicht kenne) und `FlexCat' (das ich empfehle, einerseits, weil es sehr
flexibel im erzeugten Source ist und z.B. Lokalisierung unter 2.0 sowie
beliebige Programmiersprachen unterstuetzt, selbst Amiga-E, Cluster,
Pascal, ... und andererseits, weil es von mir ist ;-), die diese Dateien
sowie die Kataloge erzeugen. (Der obige Quelltext koennte je nach KG
leicht unterschiedlich aussehen.) Siehe Aminet, directory `dev/misc'.
Wie funktionieren diese KGs? Zunaechst erzeugt man eine sogenannte
`Katalogbeschreibung' (`Catalog description'), die so aussehen koennte:
; Mit einem Semikolon beginnende Zeilen sind Kommentare
# language english
; die Sprache der eingebauten Strings
# version 0
; die Katalogversion (0 = beliebig)
MSG_Hello (1/15/30)
Hello, local world
Jeder String wird durch zwei Zeilen wie die letzten beiden definiert:
MSG_Hello ist die String-ID, (1/15/30) gibt den Wert der ID sowie die
minimale und maximale Laenge an. (Diese Argumente koennen auch
weggelassen werden, in welchem Fall einfach die naechste freie ID
verwendet wird.)
Nun schreiben wir das Programm. Sobald es fertig ist, wird mit dem
KG eine sogenannte Kataloguebersetzung (eine fuer jede andere Sprache
als die eingebaute) erzeugt, die so aussehen koennte:
; Mit einem Semikolon beginnende Zeilen sind Kommentare
## language deutsch
; the catalog language
## version $VER: Deutsch.catalog 1.0 (22.12.93)
; the catalog files version string
MSG_Hello
; Hello, local world
Beachten Sie die leere Zeile nach der String-ID! (Die Argumente von ##
language und ## version waeren vielleicht leer.) Hier muessten jetzt
die deutschen Strings eingesetzt werden. Mit dem KG wird daraus dann
der eigentliche `Katalog' erzeugt. (Beachten Sie auch, dasss hier die
Angaben ueber String-ID und Stringlaenge fehlen: Sie werden aus der
Katalogbeschreibung uebernommen.
Wenn das Programm veraendert wird (neue Strings, andere Laengen) und
die Katalogbeschreibung sich damit ebenfalls aendert, dann kann der KG
analog benutzt werden, um auch die Kataloguebersetzung und damit den
Katalog auf den neuesten Stand zu bringen.
3.9 Wie erhaelt man einen Zeiger auf das Fenster einer Konsole?
===============================================================
Die folgende Funktion liefert den Window-Zeiger eines CON-Fensters.
Sie kann unter allen Versionen des Amiga-OS ausgefuehrt werden.
struct Window *getConWindowPtr(BPTR fh)
{
struct Window *w;
struct FileHandle *cfh;
struct StandardPacket *sp;
struct InfoData *id;
struct MsgPort *mp;
w = NULL;
if((cfh = BADDR(fh))->fh_Type != NULL)
{
if(sp = AllocMem(sizeof(struct StandardPacket),
MEMF_PUBLIC | MEMF_CLEAR))
{
if(id = AllocMem(sizeof(struct InfoData),
MEMF_PUBLIC | MEMF_CLEAR))
{
if(mp = CreatePort(NULL, 0))
{
sp->sp_Msg.mn_Node.ln_Name = (char *)&sp->sp_Pkt;
sp->sp_Pkt.dp_Link = &sp->sp_Msg;
sp->sp_Pkt.dp_Port = mp;
sp->sp_Pkt.dp_Type = ACTION_DISK_INFO;
sp->sp_Pkt.dp_Arg1 = MKBADDR(id);
PutMsg(cfh->fh_Type, &sp->sp_Msg);
(void)WaitPort(mp);
(void)GetMsg(mp);
if(sp->sp_Pkt.dp_Res1)
w = (struct Window *)id->id_VolumeNode;
DeletePort(mp);
}
FreeMem(id, sizeof(struct InfoData));
}
FreeMem(sp, sizeof(struct StandardPacket));
}
}
return w;
}
Anmerkungen:
* Auf ein CON-Fenster direkt zuzugreifen kann Konflikte mit Aktionen
des CON-Handlers hervorrufen. Seien Sie vorsichtig!
* Um den Window-Zeiger einer CLI-Konsole zu erhalten, uebergibt man
ein durch Open("*", MODE_OLDFILE) gewonnenes FileHandle an obige
Funktion.
* Das Ergebnis der obigen Funktion kann sehr wohl NULL sein, etwa im
Falle eines AUX-Handlers oder falls ein AUTO-CON-Handler sein
Fenster nicht oeffnen kann.
* Schickt man ein ACTION_DISK_INFO-Paket an einen AUTO-CON-Handler
(2.0+), so verliert dessen Fenster seine speziellen
AUTO-Eigenschaften (es kann also nicht mehr durch das Betaetigen
des Close-Gadgets geschlossen werden), weil der in id_VolumeNode
gelieferte Window-Zeiger gueltig bleiben muss.
* Alles in allem: Verwenden Sie diese Funktion nicht. :-)
Weitere Informationen finden Sie auf den Seiten 273, 276, 435, 463,
485 und 629 im "Amiga Guru Book" (siehe Dokumentation).
Ralph Babel, rbabel@babylon.pfm-mainz.de
3.10 Was sind Pragmas?
======================
Pragmas sind spezielle Anweisungen an den Praeprozessor eines
C-Compilers. Zwei Probleme entstehen bei der Verwendung von Pragmas:
1. Pragmas sind hochgradig compilerspezifisch. Nicht einmal die
Amiga-Compiler haben dieselben Pragmas, selbst wenn damit das
gleiche bewirkt wird.
2. Man kann sich nicht darauf verlassen, dass ein Compiler Pragmas
ignoriert, die er nicht fuer steht. Dies gilt selbst dann, wenn
man einen Ausdruck wie den folgenden verwendet:
#ifndef MY_COMPILER
#pragma DoAnything
#endif
Das letztere Problem laesst sich umgehen, indem man Pragmas wie folgt
in eigene Include-Files setzt. (Das gleiche gilt uebrigens auch fuer
andere Praeprozessor-Kommandos wie #asm (Aztec-C) oder #extern (C++).)
#ifndef MY_COMPUTER
#include <mypragmas.h>
#endif
Aber was machen Pragmas auf dem Amiga? Meistens werden sie verwendet,
um dem Compiler mitzuteilen, wie gewisse Library-Funktionen aufgerufen
werden. (Tatsaechlich wird fast immer diese Verwendung gemeint, wenn
Amiga-Besitzer ueber Pragmas sprechen.) Gewoehnliche C-Funktionen
erwarten ihre Argumente auf dem Stack, Library-Funktionen dagegen in
bestimmten Registern. Ferner erwarten sie den `Library-Base-Pointer' in
Register a6. Betrachten wir eine Pragma-Anweisung von Aztec-C:
#pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
Dies weist den Compiler an, das erste Argument in Register a1 und das
zweite in d0 zu laden. Ferner wird der Inhalt der Variablen SysBase in
Register a6 geladen. Maxon-Pragmas sehen genauso aus, Dice- und
SAS-Pragmas sind allerdings etwas komplizierter:
#pragma libcall SysBase FreeMem d2 0902
Hier ist d2 (wie 0xd2 oben) der `Library-Vektor-Offset' (siehe
naechstes Beispiel). Die letzte Ziffer ist die Zahl der Argumente, die
davorstehende 0 ein Code fuer das Register mit dem Ergebnis und die
davor stehenden Ziffern sind Codes fuer die Register mit den Argumenten
in verkehrter Reihenfolge. (Die Codes bedeuten 0=d0, 1=d1, .., 8=a0,
9=a1, a=a2, ..)
Ein Kommando wie `FreeMem(fib,sizeof(*fib);' wuerde ein Compiler nun
in folgenden Code uebersetzen:
move.l _fib,a1
move.l 260,d1 ; sizeof(struct FileInfoBlock)
move.l _SysBase,a6
jsr -0xd2(a6) ; 0xd2 = _LVOFreeMem
FreeMem in dieser Art aufzurufen ist kuerzer und schneller als
zunaechst die Argumente auf den Stack zu legen und dann eine Funktion
_FreeMem aufzurufen, die letzten Endes doch nur dasselbe tun und die
Argumente vom Stack in dieselben Register laden wuerde.
Das Portierungsproblem der Pragmas umgeht man, indem man sie
folgendermassen in den eigenen Quelltext einbindet:
/* Lade den Funktionsprototyp. Dieser ist nicht vom */
/* verwendeten Compiler abhaengig. */
#include <clib/exec_protos.h>
/* Pragmas sind vom Compiler abhaengig, aber wenigstens */
/* die Namen der Dateien mit Pragmas sind relativ */
/* einheitlich. */
#ifdef AZTEC_C
#include <pragmas/exec_lib.h>
#endif
#if defined(__SASC) || defined(_DCC) || defined(__MAXON__)
#include <pragmas/exec_pragmas.h>
#endif
#ifdef __GNUC__
#include <inline/exec_lib.h>
#endif
Das obige Beispiel kann problemlos mit allen angegebenen Compilern
verwendet werden und produziert optimalen Code.
Eine abschliessende Frage bleibt allerdings: Wie bekommt man die
Pragmas? Die meisten Compiler haben bereits fertige Pragmas im
Lieferumfang. Allerdings hilft das nicht, wenn man z.B. eine neue
Library benutzen moechte oder nur die Pragmas einer veralteten Version
hat. In diesem Fall kann man die Pragmas selbst aus den sogenannten
`FD'-Files erzeugen. Dazu haben die meisten Compiler ein Utility
namens `fd2pragma'. (Das NDU hat z.B. ein Directory namens FD, in dem
die FD-Files aller Libraries und Devices des OS enthalten sind. siehe
Include-Dateien) Es gibt auch ein frei kopierbares fd2pragma, das
Pragmas fuer Aztec, Dice, SAS und Maxon sowie LVO-Files fuer den
Aztec-Assembler und eventuelle Tag-Versionen produziert. (Aminet,
`dev/misc/fd2pragma2_0.lha' oder auf den Fish-CD's)
3.11 Wo finde ich die Funktion xxx?
===================================
Zunaechst sollte man sich versichern, dass die Funktion tatsaechlich
fehlt: Z.B. Floating-Point-Funktionen befinden sich in einer speziellen
Link-Library, die erst mit der Option `-lm' eingebunden wird. Ferner
kann es eine fehlende Variable sein: Wenn man z.B. ohne es zu bemerken
eine Intuition-Funktion benutzt, dann wird der Linker ueber das Fehlen
eines Symbols `IntuitionBase' klagen. In diesem Fall muss man also
lediglich das Folgende irgendwo im globalen Teil seines Quelltextes
einbauen:
struct Library *IntuitionBase;
(Und vergessen Sie nicht, die Library mit OpenLibrary() zu eroeffnen und
mit CloseLibrary() zu schliessen! :-)
Allerdings koennte die Funktion natuerlich tatsaechlich fehlen. Wenn
man zum Beispiel nur die Version 2.0 der amiga.lib hat, dann fehlen
etwa die Locale-Funktionen oder die Memory-Pool-Funktionen obwohl sie
prinzipiell verwendbar sind. (1) Die einfachste (und beste) Loesung
ist, das sogenannte NDU zu kaufen. Siehe Include-Dateien. Wer nicht
solange warten moechte, fuer den ist die Frage, welche Art von Funktion
in seiner Link-Library fehlt:
* Einfache Amiga-Library-Funktionen (z.B. `exec/AllocPooled' oder
`locale/OpenCatalogA') kann man mit Pragmas aufrufen und braucht
dann lediglich Informationen ueber die Aufrufkonventionen
(Library-Base, Library-Vektor-Offset und Argumentregister)
* Tag-Funktionen sind meistens einfach Zwischenfunktionen, die ihre
Argumente auf dem Stack erwarten und dann die eigentliche
Library-Funktion aufrufen. Wenn man z.B. die Funktion
`dos/AllocDosObject', die eine Konstante und einen Zeiger auf ein
Array als Argumente erwartet, nach der obigen Methode konstruiert
hat, dann hat man damit auch ihre Stack-Variante! Dazu erzeugt man
aifach die folgende Funktion:
#include <clib/dos_protos.h>
#include <pragmas/dos_pragmas.h> /* Evtl. anderer Name */
void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
{ return(AllocDosObject(objtype, (struct TagItem *) &tag1);
}
Mit fd2pragma kann das auch automatisch geschehen. Siehe Pragmas.
* Einige Funktionen bleiben aber noch uebrig: Amiga.lib enthaelt
naemlich auch Funktionen, die fuer sich selbst interessant sind,
z.B. die BOOPSI-Funktionen (`DoMethod', `DoSuperMethod'), die
Memory-Pool-Funktionen (`LibAllocPooled', `LibCreatePool', die
Ersatz fuer entsprechende 3.0-Funktionen sind) oder `HookEntry',
das sehr hilfreich bei der Programmierung von Hooks ist. Diese
kann man nur durch entsprechende, disassemblierte und neu
assemblierte oder compilierter Versionen ersetzen. Im
AmigaFAQ-Archiv sind einige dieser Funktionen bereits enthalten.
---------- Footnotes ----------
(1) Dieses Problem betrifft vor allem Besitzer von Aztec-C, das
seither nicht weiter unterstuetzt wird und von Dice, der manchmal etwas
unvollstaendig ist. Ich besitze beide ..
4 Anwendungen
*************
Dieses Kapitel entaehlt Informationen zu verschiedenen
Anwendungsbereichen.
4.1 Text-Editoren
=================
Editoren sind Programme, die die Eingabe von unformatiertem Text
ermoeglichen. Dies ist meist Text, der anschliessend durch den
Computer verarbeitet wird. Programmierer benutzen etwa Editoren zur
Eingabe der Quelltexte. Unter Unix beginnt Textverarbeitung meist mit
einem Editor, dessen Ausgabe dann mit einer Textbearbeitungssprache
(z.B. TeX) in gutaussehende Dokumente umgewandelt wird, da unter Unix
Textverarbeitungsprogramme kaum verbreitet sind.
*Kommerzielle Produkte*
CygnusEd Professional und TurboText scheinen hier die Nase vorn zu
haben. Auf den Fish-Disks gibt es Dutzende von
Shareware-Editoren. Eine Demoversion von TurboText ist auf
Fish-Disk 445 und eine allerdings sehr alte von CygnusEd auf
Fish-Disk 95. Die Folgenden Editoren sind frei kopierbar.
*Emacs*
Gnu Emacs (Aminet, Directory `util/gnu') kommt von Unix und ist
moeglicherweise der Koenig der Editoren. Er ist riesig (ueber
1MB), enthaelt eine unglaubliche Vielfalt von Funktionen (z.B. ein
eigenes Fenstersystem und sogar ein Spiel :-) und beliebig
erweiterbar: Emacs enthaelt einen eigenen Lisp-Interpreter!
Andererseits ist er dadurch schwer erlernbar und so beliebig
konfigurierbar, dass man mit dem Emacs eines anderen oft nicht
mehr umgehen kann...
*Vi*
Einfacher, aber weniger konfigurierbar und nicht erweiterbar ist
Vi. Er ist vor allem bei Unix-Benutzern beliebt, weil es ihn auf
*jeder* Unix-Maschine gibt. Die Wahl zwischen beiden ist eine
Sache der persoenlichen Vorliebe, kann einen allerdings fuers
Leben kennzeichnen. Vim und Stevie (Fish-Disk 591 bzw. 256 und
Aminet, Directory `util/edit') sind Vi-Versionen fuer den Amiga.
*DME*
Viele Amiga-Programmierer moegen DME. Er ist schnell und voll
konfigurierbar: Menues und Tastenbelegung sind beliebig. Er ist
auch leichter erlernbar als Emacs und Vi. Es gibt drei
verschiedene Versionen: AmokEd, DME und XDME. Die Wahl ist
Geschmacksache. (Oberon- und Modula-Programmierer bevorzugen
haeufig den AmokEd, weil der in Oberon geschrieben ist und die
Fehlermeldungen von AmiOberon direkt anzeigen kann.
C-Programmierer dagegen stehen oefter auf letzterem.) Quellen:
Aminet, Directory `util/edit', Fish-Disk 776 (XDME) und 749
(AmokEd), AMOK 90.
4.2 Was fuer Textverarbeitungsprogramme gibt es?
================================================
Textverarbeitungsprogramme benoetigt man, um Briefe, Artikel oder
aehnliches zu schreiben. Dies ist natuerlich eine der wichtigsten
Anwendungen eines Computers und eine fuer Sie geeignete Wahl bestimmt
haeufig, wie gut Sie mit Ihrem Computer ueberhaupt zurechtkommen.
Textverarbeitungsprogramme besitzen teilweise Faehigkeiten, die sie
sogar fuer DTP (siehe DTP) geeignet machen. Fuer einfacher
strukturierte Texte, etwa Quelltexte benuetzt man allerdings meist
besser einen Editor. Siehe Editoren.
Man unterscheidet Wysiwyg-Programme (What you see is what you get)
und Seitenbearbeitungssprachen. Wysiwyg-Programme sollten schnell,
komfortabel und einfach erlernbar sein. Die meisten Anwender ziehen sie
vor. Die Alternative ist ein funktioniert aehnlich wie Compiler: Man
verarbeitet Text-Dateien mit einem Programm, das das Layout uebernimmt
und eine weitere Datei erzeugt, die dann mit auf dem Bildschirm
angezeigt oder auf einem Drucker ausgegeben werden kann. LaTeX ist
eines dieser Programme. Siehe TeX. Lout ist ein weiteres solches
Programm, schneller und einfacher als LaTeX und mit vollstaendiger
Dokumentation versehen, aber natuerlich wesentlich weniger verbreitet.
Lout erzeugt PostScript-Dateien. (Ob dies ein Vor- oder Nachteil ist,
muss jeder selbst beurteilen. ;-) Siehe PostScript. Beide Programme
sind frei kopierbar.
Wysiwyg-Programme gibt es viele, allerdings alle kommerziell: Final
Copy II, Wordworth, Word Perfect, AmiWrite, Beckertext II, Maxon Word
und viele andere. Zur Wahl kann ich nur eines sagen: Lassen Sie sich
viel Zeit bei der Auswahl.
4.3 Desktop Publishing
======================
Diese Staerke dieser Programme ist die beliebige Anordnung und
Gestaltung von Text- oder Grafikelementen. Bei Textverarbeitungen sind
diese Faehigkeiten meist unterentwickelt. Umgekehrt fehlen
DTP-Programmen haeufig wichtige Funktionen zur Manipulation des Textes
selbst. Allerdings kommen die besten Textverarbeitungen sicher nahe an
den DTP Bereich (etwa Microsoft Word auf dem Mac oder PC) und umgekehrt
ist Framemaker (UNIX, Mac, DOS) ein Beispiel eines DTP-Programms, das
die wichtigsten Textverarbeitungsfunktionen enthaelt. Auf dem Amiga
gibt es leider weder in der einen noch in der anderen Richtung
hervorragende Beispiele, wenn auch die wichtigsten Textverarbeitungen
schon einiges leisten. Wenn man nicht gerade regelmaessig kleinere
Zeitungen herausbringt, dann wird in den meisten Faellen ein
Textverarbeitungsprogramm genuegen. Und wer umgekehrt komplexere
Funktionen wie mathematische Formeln, umfangreiche Indexe und
Referenztabellen benoetigt, der wird womoeglich auf eine
Seitenbearbeitungssprache angewiesen sein. Siehe Textverarbeitungen.
Es gibt derzeit nur kommerzielle DTP-Systeme, vor allem ProPage und
PageStream, die in den letzten Jahren wohl gegenseitig Hase und Igel
miteinander gespielt haben. Derzeit scheint PageStream 3.0 vorne zu
liegen. Beide Programme liegen im Preis um 300$, in den USA gibt es
wohl auch Studentenermaessigung (um 40%). Eine ausfuehrlichere
Beschreibung waere willkommen.
4.4 Was ist TeX und wo bekomme ich es?
======================================
TeX ist eines der maechtigsten Textverarbeitungssysteme, die es gibt.
Es kann praktisch beliebige mathematische Formeln ebenso darstellen wie
komplexe Tabellen, Funktionen plotten (mit Hilfsprogrammen), Indexe oder
Inhaltsverzeichnisse erzeugen und viele andere Dinge. Sein groesster
Vorteil ist, dass es frei kopierbar ist (TeX selbst, nicht unbedingt die
Drucker- und Bildschirmtreiber) und sich dadurch auf der ganzen Welt und
auf praktisch jeder Computerfamilie verbreitet hat. Sein groesster
Nachteil ist, dass es sehr unhandlich und schwer zu erlernen ist (Es
arbeitet aehnlich wie ein Compiler.) und keinerlei Wysiwyg-Faehigkeiten
hat. Aber viele Leute moegen es. (Dieser Text ist uebrigens mit TeX
erstellt worden. 8-) Siehe Textverarbeitungen.
Es gibt im wesentlichen zwei Implementationen auf dem Amiga.
Amiga-TeX von Thomas Rockicki und Radical Eye Software ist kommerziell
und kostet etwa 200-300$. Es soll wirklich exzzellent sein und seine
Besitzer schwoeren darauf.
Ich persoenlich empfehle PasTeX, eine frei kopierbare Version. Es
gibt immer wieder Leute, die ueber Installationsprobleme klagen
(besonders, was das Laden und die automatische Erzeugung von Fonts
angeht), aber ich kenne niemanden, der unzufrieden ist, nachdem es erst
einmal installiert ist. (Ein Freund mit TeX-Kenntnissen kann enorm
hilfreich sein.) Wenn man sich an die Vorgaben des Installationsskripts
haelt, sollte es eigentlich keine Probleme geben. Wesentlich ist
allerdings, dass man alles noetige installiert und dazu braucht man:
* 5 Disketten mit dem eigentlichen TeX-Compiler
* 2 Disketten mit MetaFont
* Nichts weiter Viele Leute fragen nach Fonts. Diese sind Teil des
MetaFont-Paketes und werden automatisch erzeugt, wenn sie gebraucht
werden, vorausgesetzt natuerlich, dass TeX so wie in der Dokumentation
beschrieben installiert ist. (Das Erzeugen der Fonts kann am Anfang
natuerlich dauern bis die wichtigsten erst mal da sind.) Bitte beachten
Sie, dass die PasTeX-Disketten mit Zoom gepackt sind. (siehe Endungen)
PasTeX bekommt man per FTP z.B. bei `ftp.uni-passau.de' im Directory
`/pub/amiga/tex/PasTeX1.3'.
4.5 Gibt es PostScript-Interpreter auf dem Amiga?
=================================================
PostScript ist eine Programmiersprache fuer das Ausdrucken von
ganzen Seiten. Apple hat PostScript populaer gemacht, indem sie es in
ihre Drucker eingebaut haben.Inzwischen gibt es viele Programme, die
ihre Ausdrucke als PostScript-Quelltexte machen koennen. Bis vor kurzem
brauchte man fuer PostScript einen relativ teuren Laserdrucker.
Inzwischen gibt es aber auch Programme, die PostScript-Dateien auf
anderen Druckern ausgeben koennen.
Einer der Vorteile von PostScript ist, dass es unabhaengig von der
gewaehlten Aufloesung ist. Man kann also die Vorteile der moeglichen
Aufloesung auf dem Drucker ausnutzen und trotzdem dieselbe Datei auf
dem Bildschirm mit seiner meist schlechteren Aufloesung darstellen.
Es gibt zwei frei kopierbare PostScript-Interpreter, Post und
GhostScript. Post ist eine shared-Library mit Programmen zur Ausgabe
auf Drucker und Bildschirm. Man kann damit beispielsweise in AmigaTeX
PostScript-Dateien als Bilder in TeX-Dateien einbauen. Siehe TeX.
GhostScript besteht ebenfalls aus zwei Programmen, GhostScript selbst
(der eigentliche Interpreter) und GhostView, der Benutzeroberflaeche.
Quellen: Aminet (Directories `text/print' und `text/dtp'), Fish Disk
669.
--
Jochen Wiedmann E-Mail: wiedmann@mailserv.zdv.uni-tuebingen.de